package fr.upmc.alasca.centreCalcul.interne.controleurApplication.interfaces;

import java.util.List;
import java.util.Map;

import fr.upmc.alasca.centreCalcul.objets.Requete;
import fr.upmc.components.interfaces.OfferedI;
import fr.upmc.components.interfaces.RequiredI;

/**
 * 
 * @author Antoine Lavaire, Sabri Labassi, Thibaut Fleury, Ryme Fantazi
 */
public	interface	ControleurApplicationCapteurTEI
extends				OfferedI, RequiredI
{
	/**
	 * Permet au capteur d'envoyer une liste de requête au controleur d'application.
	 * @param requete
	 * @throws Exception 
	 */
	public	void	getMesureCapteurTE
	(
		Map<String, List<Requete>>	stockageRequete
	) throws	Exception;
	
	/**
	 * Permet d'arreter l'application
	 * @throws Exception
	 */
	public	void	arreterApplication
	() throws	Exception;
	
	/**
	 * Permet de mettre en place un système de callback. Une fois que l'arbitrage va être effectué,
	 * on va appeler cette méthode pour ajouter une nouvelle liste de machine physique (qui ont eu
	 * des coeurs alloué pour notre application) et créé les MV si nécessaire.
	 * @param listMP
	 * @throws Exception
	 */
	public	void	callbackAjouterCoeurs
	(
		List<String>	listMP
	) throws	Exception;
}
